import request from '@/utils/request';

/* 
  以下是三级分类的内容

*/
export interface reqCategoryItemType {
    id: number;
    name: string;
    category1Id?: number;
    category2Id?: number;
}

export type reqCategoryType =reqCategoryItemType[]

// 1.请求一级分类列表
export const requestCategory1 =()=>{
    return request.get<any,reqCategoryType>(`/admin/product/getCategory1`)
}

// 2.请求一级分类列表
export const requestCategory2 =(category1Id:number)=>{
    return request.get<any,reqCategoryType>(`/admin/product/getCategory2/${category1Id}`)
}

// 3.请求一级分类列表
export const requestCategory3 =(category2Id:number)=>{
    return request.get<any,reqCategoryType>(`/admin/product/getCategory3/${category2Id}`)
}

/* 
  以下是Attr的内容

*/
//某个属性内属性值列表的类型
export interface attrValueListType {
    id?: number;
    valueName: string;
    attrId: number|undefined;
    isEdit?: boolean;
  }
  
  //某个属性的类型
  export interface attrListItemType {
    id?: number;
    attrName: string;
    categoryId: number;
    categoryLevel: number;
    attrValueList: attrValueListType[];
  }
  //属性列表的类型
  export type attrListType = attrListItemType[];
  
  //4.获取当前三级分类的属性
  export const requestAttrList = (
    category1Id: number,
    category2Id: number,
    category3Id: number
  ) => {
    return request.get<any, attrListType>(
      `/admin/product/attrInfoList/${category1Id}/${category2Id}/${category3Id}`
    );
  };
  
  //5删除某个属性
  export const requestDeleteAttr = (attrId: number) => {
    return request.delete<any, null>(`/admin/product/deleteAttr/${attrId}`);
  };
  
  //6.新增或修改属性
  export const requestUpdateOrAddAttr = (newAttr: attrListItemType) => {
    return request.post<any, null>(`/admin/product/saveAttrInfo`, newAttr);
  };

